package io;

import java.io.*;

/**
 * JAVA将流按照读写单位划分：字节流与字符流
 * InpustStream和OutputStream是字节流的超类
 * Reader和Writer是字符流的超类
 * 这些超类之间没有继承关系 是平级的
 *
 * 字符流中的定义了读写字符的相关read和write方法 使得我们读写的最小单位为字符（char）
 * 注意：字符流仅适合读写文本数据
 * 字符流底层本质还是读写字节，只是字节与字符的转换字符流会完成
 *
 * 转换流
 * InputStreamReader和OutputStreamWriter
 * 常用的一对字符流实现类，他们是一对高级流，实际开发中我们几乎不会直接操作他们。但是
 * 他们在流连接中是非常重要的一环
 * 功能
 * 1：连接其他字符流与下面的字节流
 * 2：字符与字节的转换由转换流完成
 *
 */


public class OSWDemo {
    public static void main(String[] args) throws IOException {
        //向文件中途写入文本数据
        FileOutputStream fos = new FileOutputStream("osw.txt");
        //转换流创建时可以指定字符集 那么写出的字符都会按照该字符集转换为字节
        OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
        /*
        字符输出流提供的write方法是以字符为单位的 并且也提供了直接写出一个字符串的方法

         */

        osw.write("你在南方的艳阳里大雪纷飞");
        osw.write("我在北方的寒夜里四季如春");

        System.out.println("输入完毕");
        osw.close();




    }
}
